Predictively presenting search capabilities

ABSTRACT

Example techniques and systems may obtain one or more search types associated with a geographic location of a computing device. In one example, a technique may include determining, by a mobile computing device, a geographic location of the mobile computing device and obtaining one or more search types associated with the geographic location. Responsive to obtaining the one or more search types, the technique may also include outputting, by the mobile computing device and for display, a graphical user interface comprising at least an indication of the one or more search types associated with the geographic location.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/222,024, filed on Jul. 28, 2016, which is a continuation of U.S.application Ser. No. 13/901,540, filed on May 23, 2013, which claims thebenefit of U.S. Provisional Application No. 61/733,873, filed Dec. 5,2012, the entire contents of each are incorporated herein by reference.

BACKGROUND

Current image-based visual search technology tends to work well whenprovided certain classes of image input (e.g., a barcode) but poorlywhen provided others (e.g., a sweater). As such, failing to properlyidentify an optimal search tool or technology for a given user contextcan lead to imprecise or inapplicable search results.

SUMMARY

In one example, a method includes determining, by a mobile computingdevice, a geographic location of the mobile computing device, obtainingone or more search types associated with the geographic location, andresponsive to obtaining the one or more search types, outputting, by themobile computing device and for display, a graphical user interfacecomprising at least an indication of the one or more search typesassociated with the geographic location.

In another example, a computing device includes one or more processors,a device location module operable by the one or more processors todetermine a geographic location of the mobile computing device, and apredictive module operable by the one or more processors to obtain oneor more search types associated with the geographic location, andresponsive to obtaining the one or more search types, output, fordisplay, a graphical user interface comprising at least an indication ofthe one or more search types associated with the geographic location.

In an additional example, a computer-readable storage medium comprisinginstructions that, when executed, configure one or more processors of acomputing device to determine a geographic location at which thecomputing device is located, obtain one or more search types associatedwith the geographic location, and responsive to obtaining the searchtype, output, for display, an indication of the one or more search typesassociated with the geographic location.

In an additional example, a system includes means for determining ageographic location of a mobile computing device, means for obtainingone or more search types associated with the geographic location, andmeans for, responsive to obtaining the one or more search types,outputting, for display, a graphical user interface comprising at leastan indication of the one or more search types associated with thegeographic location.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of the disclosure will be apparent from the description anddrawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example computing devicethat is configured to predictively present selective searchcapabilities, in accordance with one or more aspects of the presentdisclosure.

FIG. 2 is a block diagram of the example computing device of FIG. 1 .

FIG. 3 is a block diagram illustrating an example computing device thatoutputs graphical content for display at a remote device.

FIG. 4 is a conceptual diagram illustrating an example system includinga computing device and networked server configured to predictivelypresent selective search capabilities via the computing device.

FIG. 5 is a flow diagram illustrating an example operation of acomputing device.

FIG. 6 is a flow diagram illustrating another example operation of acomputing device.

FIGS. 7 and 8 are flow diagrams illustrating example operations of anetworked server in communication with a computing device.

DETAILED DESCRIPTION

The present disclosure describes technology for predictively providingsearch results associated with a geographic location of a computingdevice.

In some locations, certain search capabilities are especially relevant.For example, a user in an art museum may want to recognize artwork usingan image-based visual search. Similarly, a user in a shop may wish touse a computing device to perform an image-based visual search torecognize products and/or barcodes for comparison shopping or research.In some implementations of the disclosed technology, a computing devicemay use a current geographic location of the computing device to providespecific search capability suggestions to the user. The computing devicemay thus provide search capability suggestions to the user even when theuser may not even know that the computing device is configured toprovide such search capabilities such as image-based visual searches.

Using a predictive user interface system, a computing device can providea graphical user interface that indicates a capability of the computingdevice, and/or an associated networked server, to perform relevantsearches responsive to predictions relating to the type of searchesavailable to the computing device and the user of the computing device.The computing device (e.g., a mobile computing device such as a mobilephone, smartphone, tablet computer, smartwatch, or notebook computer)may determine the geographic location at which the computing device islocated using one or more sensors and/or location specific dataavailable to the computing device. In one example, the computing devicemay transmit the geographic location to a networked device (e.g., anetworked server) via a network. The networked device may determine oneor more search types associated with the geographic location of thecomputing device and transmit the search types back to the computingdevice. Alternatively, the computing device may determine the one ormore search types associated with the geographic location. In thismanner the computing device and/or a networked server may include apredictive module configured to determine the one or more search typesassociated with the geographic location of the computing device.

In response to obtaining the determined search types associated with thegeographic location, the computing device may output an indication ofthe one or more search types for display. For example, the computingdevice may output the indication of the search types for display at adisplay device. Example search types may include a visual search such asa barcode scanning capability, a quick response code scanningcapability, an image recognizer capability, or an optical characterrecognition capability. In response to receiving user input selectingone of the search types, the computing device may obtain a search input(e.g., an image obtained by an optical sensor of the computing devicefor a selected visual search type) and transmit the search input to anetworked device via a network. The computing device may then receiveone or more search results from the networked device and output thesearch results for display.

In addition or alternatively to obtaining a search type associated witha geographic location at which a computing device is located, the searchtype may be based on other information. For example, the search type maybe based on a time, such as a current time of day, a day of the week, amonth of the year, or even a season of the year. In another example, thesearch type may be based on a calendar event associated with thecomputing device. The predictive user interface of the system may thusbe configured to obtain search types specific to different criteria orcombinations of different criteria. The different criteria may beindicative of the specific context for which the predictive userinterface may determine a search type. In one example, a predictivemodule of the computing device may determine a search type associatedwith the geographic location of the computing device and a calendarevent occurring at the same time at which the geographic location wasdetermined. The computing device and/or a networked server may thus beconfigured to identify when a particular search type may be appropriatefor a given geographic location.

One or more aspects of the disclosure may be operable only when the userhas explicitly enabled such functionality. For example, computing device2 may only obtain and/or transmit geographic locations of computingdevice 2 to a networked device in the instance where the user hasexplicitly consented to the use of such data. In addition, obtainedimages may only be transmitted to a networked device and/or used togenerate search results after the user has consented to such use of thisdata. In this manner, the user may control any and all of datacollection and data transmission as described herein. The user mayconsent or revoke consent to the collection and/or transmission of anydata at any time. Furthermore, various aspects of the disclosure may bedisabled by the user.

FIG. 1 is a conceptual diagram illustrating an example computing device2 that is configured to predictively present selective searchcapabilities, in accordance with one or more aspects of the presentdisclosure. In the example of FIG. 1 , computing device 2 is describedas a mobile phone. However, in other examples, computing device 2 may bea personal digital assistant (PDA), a desktop computer, a laptopcomputer, a tablet computer, a portable gaming device, a portable mediaplayer, a camera, an e-book reader, a watch, or another type ofcomputing device.

As shown in FIG. 1 , computing device 2 may include user interfacedevice (UID) 4, user interface (UI) module 6, search module 8, devicelocation module 10, and predictive module 12. UI module 6, search module8, device location module 10, and predictive module 12 may performoperations described herein using software, hardware, or a combinationof both hardware and software residing in and executing on computingdevice 2. Computing device 2 may execute modules 6, 8, 10, and 12 withone or more processors in some examples. In other examples, computingdevice 2 may execute modules 6, 8, 10, and 12 as a virtual machineexecuting on underlying hardware of at least computing device 2.

UID 4 of computing device 2 may function as an input device and/or anoutput device for computing device 2. For example, UID 4 of computingdevice 2 may include a presence-sensitive input device, such as atouchscreen configured to receive tactile user input from a user ofcomputing device 2. In some examples, the presence-sensitive inputdevice may be or include a presence-sensitive display that also outputsa display for viewing by a user. UID 4 may receive tactile user input asone or more taps and/or gestures. UID 4 may detect taps or othergestures in response to the user touching or pointing to one or morelocations of UID 4 with a finger or a stylus pen. UID 4 may beimplemented using various technologies. For example, UID 4 may beimplemented using a resistive touchscreen, a surface acoustic wavetouchscreen, a capacitive touchscreen, a projective capacitancetouchscreen, a pressure sensitive screen, an acoustic pulse recognitiontouchscreen, or another presence-sensitive display technology.

UID 4 may include any one or more of a liquid crystal display (LCD) dotmatrix display, light emitting diode (LED) display, organiclight-emitting diode (OLED) display, e-ink, or similar monochrome orcolor display capable of outputting visible information to the user ofcomputing device 2. UID 4 may present a user interface (e.g., userinterface 14), which may be related to functionality provided bycomputing device 2. For example, UID 4 may present various functions andapplications such as an electronic message application, a cameraapplication, a calendar application, a map application, and an Internetbrowser for accessing and downloading information from the Internet orany network. In another example, UID 4 may present a menu of optionsrelated to the function and operation of computing device 2, such asscreen brightness and other configurable settings of computing device 2.

Computing device 2 may be configured to output to UID 4 one or moregraphical user interfaces (GUIs) for display at UID 4. A GUI may includegraphical elements displayed at various locations of UID 4. For example,FIG. 1 illustrates a predictive information GUI 14 that includespredictive card 16 as an example graphical element that may be includedas part of predictive information GUI 14. Predictive information GUI 14is a GUI that predictive module 12 can output for display at UID 4.Predictive module 12 can also output at least some predictiveinformation at predictive information GUI 14. Predictive card 16 mayinclude information predicted by predictive module 12, and/or or amodule of a networked server or other device, to be useful, relevant, orotherwise interesting to a user of computing device 2. Predictive card16, as shown in the example of FIG. 1 , may include information about anobject, which can include a brief textual summary of the object. Inaddition, predictive card 16 may include an icon or picture representingthe object. Although determined search types may be presented withinpredictive card 16, computing device 2 may output for display and/orpresent an indication of one or more search types associated with adetermined location of computing device 2 via other user interfaces.

As generally described herein, computing device 2 and/or a computingdevice reachable by computing device 2 (e.g., a networked sever, a cloudcomputing system, etc.) may determine a search type associated with ageographic location at which computing device 2 is located. In thismanner, a display associated with computing device 2 may display anindication of the determined search type. In response to receivingselection of the determined search type and a search input for thesearch type, computing device 2 may obtain one or more search resultsassociated with the search input. In the example of a visual searchtype, computing device 2 may obtain search results associated with animage of object obtained by a camera (e.g., an image sensor of computingdevice 2). Determining search types associated with one or morecriteria, such as the geographic location of computing device 2, mayenable computing device 2 to provide search types that may beappropriate for a user of computing device 2.

In one example, computing device 2 may be configured to determine ageographic location of computing device 2. Computing device 2 may alsoobtain one or more search types associated with the geographic locationat which computing device 2 is located. Responsive to obtaining the oneor more search types, computing device 2 may be configured to output agraphical user interface for display (e.g., predictive information GUI14). Predictive information GUI 14 may include at least one indicationof the one or more search types (e.g., search type indication 18)associated with the geographic location. UI device 4 may be configuredto receive a selection of a search type or some other user input toobtain search results using the selected search type presented bypredictive information GUI 14.

In some examples, device location module 10 may be configured todetermine the geographic location of computing device 2. The geographiclocation may be indicative of where computing device 2 is located. Thegeographic location may be represented by a variety of different data.Latitude and longitude coordinates may represent the geographiclocation. Alternatively, the geographic location may be represented by astate, city, neighborhood, building, or other indication of the locationof computing device 2. For example, computing device 2 may include aglobal positioning system (GPS) radio configured to receive GPS signals(e.g., from a GPS satellite). Device location module 10 may analyze theGPS signals received by the GPS radio to determine the currentgeographic location of computing device 2. Computing device 2 maylikewise include a cellular radio configured to receive cellular radiosignals. In addition, or alternative, to the GPS signals, devicelocation module 10 may analyze the cellular radio signals received bythe cellular radio to determine a geographic location of computingdevice 2. In other examples, device location module 10 may analyze WiFisignals or other networking signals associated with a network accesspoint of a known location to estimate the geographic location ofcomputing device 2. In this manner, device location module 10 may obtainone or more data points to determine a geographic location of computingdevice 2. Computing device 2 may include any number of radios or sensordevices that receive signals that include data with which devicelocation module 10 may analyze to determine the geographic location ofcomputing device 2. Device location module 10 may use any combination ofsignals or data to determine the geographic location of computing device2.

In some examples, the resolution or accuracy of the determinedgeographic location of computing device 2 may affect the ability ofcomputing device 2 to obtain appropriate search types associated withthe actual location of computing device 2. In other words, lowresolution determination of a geographic location may not provide anaccurate indication of where computing device 2 is located. Since aninaccurate indication of the geographic location may result in obtainingsearch types not associated with the actual location of computing device2, computing device 2 may be configured to withhold obtaining oroutputting for display a search type when the resolution of thegeographic location is below a predetermined threshold. Withholding asearch type may include not outputting the search type or outputting anerror message via predictive information GUI 14.

Device location module 10 may determine the geographic location ofcomputing device 2 at periodic intervals, in response to a request froma software application, or dynamically based on various inputs. Forexample, device location module 10 may update the geographic location ofcomputing device 2 at predetermined intervals (e.g., once every second,once every minute, etc.). In another example, device location module 10may determine the geographic location in response to receiving a requestfrom a software module or networked device. For example, predictivemodule 12 may request the current geographic location based on useractions or other inputs. In alternative examples, device location module10 may determine the geographic location of computing device 2 inresponse to one or more inputs exceeding a respective threshold. Forexample, device location module 10 may update the geographic location inresponse to output from an accelerometer and/or gyroscope exceeding athreshold that indicates movement of computing device 2.

In some examples, predictive module 12 may generate predictive card 16(or another feature of predictive information GUI 14) based on thegeographic location of computing device 10. Predictive card 16 mayinclude search type indication 18, which is an indication of thedetermined search type based on the geographic location of computingdevice 2. As shown in FIG. 1 , search type indication 18 isrepresentative of a visual search type. However, one or more search typeindications 18 may be provided in predictive card 16, and each searchtype indication may be indicative of different search type capabilitiesperformable by computing device 2. In other examples, search typeindications 18 may be provided by predictive information GUI 14 in aformat different than predictive card 16 (e.g., a notification, aseparate window relating to available search types, a portion of anapplication user interface, etc.). One or more devices may determine theone or more search types associated with a current location of computingdevice 2.

In one example, computing device 2 may be configured to obtain one ormore search types by determining the one or more search types associatedwith a geographic location. Computing device 2 may store or obtain a setof locations, where each location is associated with one or more searchtypes. This set of locations may be referred to as whitelisted locationsand may be updated periodically or in response to a request frompredictive module 12. In some examples, predictive module 12 may beconfigured to determine that computing device 2 is physically locatedproximate to a whitelisted location based on the determined geographiclocation of computing device 2. In other examples, device locationmodule 10 may determine the proximity of the determined geographiclocation to a whitelisted location. Computing device 2 may be configuredwith a list of locations at which certain search types may be especiallyrelevant (e.g., a location whitelist). Alternatively, the list ofwhitelisted locations may be stored and accessed by a networked serverin communication with computing device 2. That is, a whitelistedlocation may be a location for which visual searching capabilities orother searching capabilities are relevant. In other words, one or morevarious types of searches may be associated with particular geographiclocations.

A type of search may be a visual search that utilizes one or moreoptical sensors to obtain one or more images. Examples of visual searchcapabilities include a barcode scanner, a quick response (QR) codescanner, an image recognizer, and optical character recognition. Othersearch capabilities may include audio and textual search capabilities.Each whitelisted location may be associated with one or more searchtypes, such as a visual search, audio search, and/or text search. Inaddition, each whitelisted location may be associated with one or morecapabilities or subtypes of the search type (e.g., a barcode scanner, aQR code scanner, an image recognizer, and optical character recognitionor a visual search).

The whitelisted locations may correspond to particular GPS coordinatesand may be associated with information about objects located at or nearthe location, including names, types, or other information aboutparticular buildings, businesses, products, or other objects at or nearthe location. For example, the whitelisted location may be associatedwith a bookstore. Bookstores frequently include goods having bar codes,which may be well suited for visual searching. Thus, the location may beincluded within the whitelist and associated with the search type of abarcode scanner capability. In another example, the whitelisted locationmay be associated with restaurant. However, restaurants may not includeobjects (e.g., food) for which a visual search type is well suited orappropriate. In other words, a visual search may not elicit accuratesearch results. Thus, the location of the restaurant may not be includedwithin the whitelist.

Computing device 2 may be configured to determine one or more searchtypes associated with a geographic location by first comparing thegeographic location to a set of predetermined geographic locations(e.g., whitelisted locations). Computing device 2 may then determinewhich search types are associated with the geographic location ofcomputing device 2 by matching or otherwise correlating the geographiclocation to one or more of the whitelisted locations. If the geographiclocation matches or otherwise correlates with two or more whitelistedlocations, predictive module 12 may provide each search type associatedwith all of the matching whitelisted locations.

In other examples, computing device 2 may be configured to determinethat it is proximate to a whitelisted location in response todetermining that computing device 2 is located at a geographic locationwithin a threshold distance from the whitelisted location (e.g., within100 meters, 3 blocks, 2 miles, etc.). Device location module 10 maydetermine the geographic location of computing device 2 and provide anupdated geographic location to predictive module 12 periodically, atpredetermined intervals, in response to a change in the geographiclocation, or responsive to a request from predictive module 12. Usingthe geographic location, predictive module 12 may determine thatcomputing device 2 is or is not located proximate to (e.g., at or near,such as within a threshold distance) a whitelisted location.Alternatively, device location module 10 may be configured to determinethat computing device 2 is or is not located proximate to a whitelistedlocation and provide predictive module 12 with location information(e.g., the geographic location) associated with the location ofcomputing device 2. If device location module 10 determines thatcomputing device 2 is not located at or near a whitelisted location,device location module 10 may provide predictive module 12 with anindication that computing device 2 is not located at or near awhitelisted location (e.g., predictive module 12 would not provide anysearch type indication 18).

Predictive module 12 may be configured to receive the locationinformation (e.g., a determined geographic location) from devicelocation module 10 and, based on the received information, determinewhether to generate a predictive user interface that includes (e.g.,indicates) visual search capabilities. If the received informationincludes an indication that computing device 2 is not at or near awhitelisted location, predictive module 12 may determine that apredictive user interface having specific search capabilities should notbe generated and refrains from, or withholds, generating such apredictive user interface. For example, if predictive module 12determines that the geographic location of computing device 2 is not ator near an art museum referenced in predictive card 16 of FIG. 1 ,predictive module 12 may refrain from generating predictive card 16 suchthat predictive card 16 is not included within predictive informationGUI 14. In other examples, predictive module 12 may merely refrain fromincluding a search type indication 18 when no search type is associatedwith the detected geographic location.

If the received location information indicates that computing device 2is at or near a whitelisted location, predictive module 12 may generatea predictive card for inclusion in a predictive user interface (e.g.,predictive information GUI 14). Predictive card 16 may include at leasta portion of the location information, such as the determined geographiclocation or a representation of the geographic location, received fromdevice location module 10. For example, predictive card 16 may include abuilding name, business name, or street address instead of a geographiclocation in the form of latitude and longitude coordinates. Predictivemodule 12 may then determine, based on the location information, whatsearch type should be included within predictive card 16. An example ofthe included search type may be one or more visual search capabilitiesor indications of visual search capabilities of computing device 2and/or an associated networked server provided within predictive card16. For example, in response to determining that computing device 2 islocated at or near an art museum (a whitelisted location), predictivemodule 12 may be configured to determine that a visual search type isassociated with the art museum for searching artwork using images (e.g.,images captured using a camera element or other optical sensor ofcomputing device 2) is a relevant visual search capability. That is,visual searching for artwork using images is a visual searchcapabilities related to or associated with the geographic location ofcomputing device 2. Predictive module 12 may include at least anindication of the visual search capability determined to be related tothe location shown within predictive card 16 (e.g., a visual search ofsearch type indication 18). Predictive module 12 may send at least anindication of the generated predictive card (e.g., predictive card 16)to UI module 6 for output by UID 4 within GUI 14.

The one or more search types applicable for the present circumstances ofcomputing device 2 may not be limited to geographic location ofcomputing device 2. For example, additional criteria may be used todetermine which search types may generate appropriate search results. Inone example, predictive module 12 may determine the one or more searchtypes for predictive card 16 based on the geographic location ofcomputing device 2 and a type of computing device 2. The type ofcomputing device may be indicative of available sensors (e.g., opticalsensors or microphones), quality of sensors, processing speed, availablememory, operating system version, or any other software or hardwarecapabilities of computing device 2. For example, a visual search typemay not be appropriate if computing device 2 does not include an opticalsensor (e.g., a camera) or if the optical sensor is malfunctioning. Inthis manner, the type of computing device may also include a currentoperating state of one or more components.

In other examples, predictive module 12 may determine the one or moresearch types based on a current time. This current time may be thecurrent time when predictive module 12 determines the one or more searchtypes or the current time during which the geographic location wasdetermined. In either case, predictive module 12 may use the currenttime to further specify when certain search types are appropriate togenerate accurate search results. For example, a visual search typeassociated with landmarks of a whitelisted location may not be aneffective search tool at night when images of the landmarks would not bewell defined. In another example, a search type of a barcode scanningcapability may only be appropriate for a business location when thebusiness is open to customers. Therefore, predictive module 12 may usethe current time to at least partially determine one or more searchtypes associated with a geographic location.

Each whitelisted location may have a time range associated with eachsearch type. In addition, or alternatively, predictive module 12 may usethe current time and context of the search type, context of thelocation, or additional database to correlate search types andappropriate times at the determined geographic location. For example, ifthe geographic location is associated with a business, predictive module12 may search for business hours and determine the search type based onif the business is open to customers. Predictive module 12 may also usethe current time to identify daytime and nighttime, a day of the week, amonth, a season, or even a year that may be applicable for determiningappropriate search types.

The current time may also be used to correlate the search times with ascheduled event associated with computing device 12. Predictive module12 may obtain information from a calendar or event schedule associatedwith computing device 2 (e.g., an account associated with a user ofcomputing device 2). A scheduled event may be indicative of a searchtype of particular interest or applicability at the identified time thatthe geographical location of computing device 2 was determined. Forexample, a scheduled event may be indicative of a shopping trip, an artmuseum event, or any other event at which particular search types may beapplicable. Predictive module 12 may select from one or more searchtypes associated with the geographic location of computing device 2based on the scheduled event. In this manner, predictive module 12 mayidentify which one of multiple search types associated with the samewhitelisted location is applicable for the scheduled event.Alternatively, predictive module 12 may use the scheduled event toselect between two or more whitelisted locations that correspond to thegeographic location of computing device 2. For example, if an art museumand a bookstore are both identified within a threshold distance of thegeographic location of computing device 2, predictive module 12 mayselect the search types associated with the art museum if a scheduledevent at the current time is indicative of visiting the art museum.

As described herein, UI device 4 may be configured to display predictivecard 16 and one or more search type indications 18 within the predictivecard. In response to receiving a user selection of search typeindication 18 presented within predictive card 16, search module 8 mayexecute a search based on the selected search type. Predictiveinformation GUI 14 may also provide additional features. For example,GUI 14 may include search bar 26 that accepts text and/or voice searchrequests, regardless of any search type predicted by predictive module12. GUI 14 may also include back icon 20, home icon 22, and recentapplications icon 24. UI module 6 may output the previous screen orapplication in response to receiving selection of back icon 20. UImodule 6 may output the home screen in response to receiving selectionof home icon 22. UI module 6 may also output a list of previouslyexecuted applications in response to receiving selection of recentapplications icon 24.

Although computing device 2 may determine one or more search typesassociated with the geographical location of computing device 2, anetworked sever (e.g., a networked device) may perform part or all ofthe determination of the one or more search types. For example,computing device 2 may be configured to obtain one or more search typesby transmitting the determined geographic location of computing device 2to a networked server over a network. The networked server may include apredictive module similar to predictive module 12 of computing device 2.Responsive to receiving the geographic location of computing device 2,the networked server may search one or more repositories for searchtypes associated with the geographic location. In response todetermining the search types, the networked server may then transmit thesearch types back to computing device 2 such that computing device 2receives the search types associated with the determined geographiclocation.

Utilizing a networked server to determine search types associated withthe geographic location of computing device 2 may enable computingdevice 2 to offload processing requirements to the networked server. Inaddition, the networked server may have access to recently updateddatabases of search types associated with each whitelisted location ofthe set of locations. In some examples, the networked server may beconfigured to determine the geographic location of computing device 2.Device location module 10 may obtain data related to the location ofcomputing device 2 and transmit the data to the networked server. Inaddition, or alternatively, the networked server may obtain data fromone or more cellular network towers or other access points to whichcomputing device 2 is connected. The networked server may then determinethe geographic location, transmit the geographic location back tocomputing device 2, and/or transmit one or more search types associatedwith the determined geographic location back to computing device 2.

Computing device 2 may output one or more determined search types fordisplay and may receive an indication of user input selecting one of thesearch types. In response to selection of the search type, search module8 may initiate a search based on the selected search type. For example,search module 8 may prompt the user to input one or more search termscorresponding to the selected search type. Search module 8 may thenperform the search within a memory of computing device 2 and/or transmitthe search terms to a networked server to obtain search results from thenetworked server. UI device 4 may output the obtained search results fordisplay. For example, UI device 4 may output the search results withinone or more predictive cards similar to, or including, predictive card16. The search results may include one or more selectable links toprovide additional information related to the search result.

For example, UI device 4 may receive user input selecting a visualsearch type presented within predictive card 16. Computing device 2 mayobtain, by one or more optical sensors, one or more images for thevisual search. In some examples, computing device 2 may obtain theimages in response to receiving the user input selecting the visualsearch type. In other examples, computing device 2 may output a cameraapplication in response to selection of the visual search type (e.g.,search type indication 18). The camera application may be a standaloneapplication or embedded within predictive card 18 and/or predictiveinformation GUI 14. Computing device 2 may obtain images in response touser input requesting each respective image. In response to obtainingthe images, computing device 2 may transmit the images to a networkedserver such that the networked server can generate one or more searchresults based on the search terms of the obtained images. Computingdevice 2 may then receive at least one search result from the networkedserver based on at least one of the transmitted images. Search module 8may then output, for display by UI device 4, GUI 14 that includes anindication of the at least one search result.

In other examples, computing device 2 may be configured to output anindication of a recognized object within an image prior to a userrequesting a search based on the object. In this manner, computingdevice 2 may indicate which visual objects may return search results. Inresponse to UI device 4 receiving user input selecting a visual searchtype indication presented within predictive card 16, computing device 2may begin obtaining images from one or more optical sensors. Responsiveto obtaining the images, UI module 6 may output each of the respectiveobtained images for display at UI device 4. For example, UI module 6 mayoutput the images within a window of predictive card 16 and/or GUI 14.The window may be described as a live window such that the imagespresented within the live window are presented in real-time or near-realtime, approximately at the time the images are obtained by an opticalsensor.

In response to obtaining the images, search module 8 may also transmiteach of the respective images to a networked device (e.g., a networkedserver) for image recognition. The networked server may analyze each ofthe images for recognized objects. A recognized object may be an objectfor which search results may be obtained during a visual search.Although full resolution images may be transmitted to the networkedserver for object recognition, such transmissions may require high databandwidth. In some examples, computing device 2 may generate a lowresolution image for each of the obtained images and transmit the lowresolution images for object recognition. In other examples, high or lowresolution images may only be sent periodically for image recognition.Since most consecutive images may include similar objects, less than allof the images may be needed to adequately recognize objects within theimages. For example, computing device 2 may transmit images once persecond, once every five seconds, once every ten seconds, and so on. Ifimages are captured at a rate higher than the predetermined imagetransmission frequency, computing device 2 may select images obtained atthe transmission frequency for sending to the network server. Images nottransmitted may be presented by UI device 4, discarded prior to or afterpresentation, or stored in a buffer for later use.

In response to recognizing an object within a received image, thenetworked server may transmit an indication of the recognized object (orrecognized objects) within the image. In response to receiving theindication of one or more recognized objects from the networked server,UI module 4 may output GUI 14 for display that includes a prompt toinitiate a search based on the recognized object. The prompt to initiatea search may include a selectable icon adjacent to the window presentingthe obtained images. In some examples, computing device 2 maysuperimpose a red box around the recognized object within the imagedisplayed by UI device 4, an arrow pointing to the recognized object, atextual description of the recognized object, or some other indicationof the object recognized within the image or images. If multipledifferent objects are recognized within the same image, each object maybe identified by a separate selectable prompt specific to each object.In this manner, computing device 2 may be configured to receive userinput specifying the recognized object for which a search is to beconducted.

Once an object is recognized and the respective prompt is displayed atUI device 4, computing device 2 may be configured to receive selectionof the prompt to initiate a search based on the recognized objectassociated with the prompt. Responsive to receiving the selection of theprompt, computing device 2 may be configured to transmit an indicationof the prompt of the graphical user interface to initiate the search.The networked server may subsequently perform a search based on theimage or object of the image associated with the search prompt. In thismanner, the search term for the search may include one or more objectsof an obtained image. Computing device 2 may receive, from the networkedserver, at least one search result based on one or more recognizedobjects associated with the selected search prompt. In response toreceiving the search results, search module 8 may output the searchresults for display at UI device 4 within GUI 14. In some examples, GUI14 may present the search results within predictive card 16 or anotherpredictive card similar to predictive card 16. Computing device 2 maycontinue to obtain images to perform subsequent searches based on otherobtained images and/or recognized objects within images. In alternativeexamples, the networked server may conduct a search automatically forany object recognized within an obtained image and transmit the searchresults to computing device 2 for display.

Although a networked server is generally described as generating searchresults, computing device 2 may alternatively, or additionally, providesearch results for any selected search type. For example, search module8 may be configured to search one or more memories of computing device 2and/or repositories accessible to search module 8 via a network. In thismanner, search module 8 may obtain search results that include itemsretrieved from a networked repository, networked server, and/or a memoryof computing device 2. Computing device 2 may transmit search terms to anetworked server to obtain search results for any selected search types.For example, audio files and/or text strings may also be used as searchterms for their respective search types.

Search results described herein may be generated using one or moresearch engines. For example, search module 8 of computing device 2and/or a search module executed by one or more networked servers mayemploy one or more algorithms for obtaining information relevant to asearch term. In some examples, a search engine may be specific to thetype of search predicted by predictive module 12, such as a visualsearch. The search engine may operate locally (e.g., at computing device2 or the networked server) and/or over one or more networks.

In this manner, techniques of this disclosure may enable a computingdevice to expose specific search capabilities (e.g., visual searchcapabilities) in a much more targeted way and in a context where thecapability is potentially much clearer than if the capability waspresented with a generic indication (e.g., “Visual Search”) and withoutregard for the location of the computing device 2. Techniques of thisdisclosure may also enable computing device 2 to promote visual searchcapabilities to users who would otherwise be unaware of the computingdevice's visual search capabilities.

Various aspects of the disclosure may be operable only when the user hasexplicitly enabled such functionality. For example, in the instancewhere the user has consented to the use of any data, e.g., geographiclocations of computing device 2 or images obtained by an optical sensorof computing device 2, the data may be used to obtain search typesand/or search results relevant to one or more objects within the images.The user may consent or revoke consent to the collection and/ortransmission of any data at any time.

In addition, various aspects of the disclosure may be disabled by theuser. Thus, a user may elect to prevent computing device 2 fromcollection and/or transmitting location information associated withcomputing device 2, obtained images, or any other information related tothe location of where computing device 2 is located or where the userresides. In addition, the user may prevent computing device 2 fromtransmitting information identifiable of the user without confirmation.Computing device 2 may present one or more screens requesting that theuser elect to transmit any or all information. In this manner, the usermay control what information, if any, is transmitted to a networkedserver or other computing device. More generally, privacy controls maybe applied to all aspects of the disclosure based on a user's privacypreferences to honor the user's privacy preferences related to the useof computing device 2 or any other computing device or functionalitydescribed in this disclosure.

FIG. 2 is a block diagram illustrating an example computing device 2.Computing device 2 of FIG. 2 is described below within the context ofFIG. 1 . In other examples, computing device 2 can include fewer,additional, or different components compared to those illustrated inFIG. 2 . For example, although user interface device 4 (“UID 4”) isshown in FIG. 2 as being integral with computing device 2, in otherimplementations, UID 4 may be operably coupled to computing device 2,e.g., by a wired or wireless data connection. As shown in the example ofFIG. 2 , computing device 2 includes UID 4, one or more processors 40,one or more input devices 42, one or more communication units 44, one ormore output devices 46, and one or more storage devices 48. In thisexample, storage devices 48 of computing device 2 also include UI module6, search module 8, device location module 10, predictive module 12, andoperating system 52. Communication channels 50 may interconnect each ofthe components 4, 6, 8, 10, 12, 40, 42, 44, 46, 48, and 52 forinter-component communications (physically, communicatively, and/oroperatively). In some examples, communication channels 50 may include asystem bus, a network connection, an inter-process communication datastructure, or any other method for communicating data.

One or more input devices 42 of computing device 2 may receive input.Examples of input are tactile, audio, and video input. Input devices 42of computing device 2, in one example, includes a presence-sensitivedisplay, touch-sensitive screen, mouse, keyboard, voice responsivesystem, video camera, microphone or any other type of device fordetecting input from a human or machine. A presence-sensitive displaymay include both a presence-sensitive input device and a display device.In addition, input devices 42 may include one or more optical sensors,such as a digital camera. The one or more optical sensors may obtainimages for a visual search. A microphone may obtain audio informationfor an audio search.

One or more output devices 46 of computing device 2 may generate output.Examples of output are tactile, audio, and video output. Output devices46 of computing device 2, in one example, includes a presence-sensitivedisplay (which may include a display device), sound card, video graphicsadapter card, speaker, cathode ray tube (CRT) monitor, liquid crystaldisplay (LCD), or any other type of device for generating output to ahuman or machine.

One or more communication units 44 of computing device 2 may communicatewith external devices (e.g., a networked server such as networked server162 of FIG. 4 ) via one or more networks (e.g., network 160 of FIG. 4 )by transmitting and/or receiving network signals on the one or morenetworks. For example, computing device 2 may use communication unit 44to transmit and/or receive radio signals on a radio network such as acellular radio network. Likewise, communication units 44 may transmitand/or receive satellite signals on a satellite network such as a GPSnetwork. Examples of communication unit 44 include a network interfacecard (e.g. such as an Ethernet card), an optical transceiver, a radiofrequency transceiver, a GPS receiver, or any other type of device thatcan send and/or receive information. Other examples of communicationunits 44 may include Bluetooth®, GPS, 3G, 4G, and Wi-Fi® radios found inmobile devices as well as Universal Serial Bus (USB) controllers.

UID 4 of FIG. 2 may include a presence-sensitive display. Computingdevice 2 may use the presence-sensitive display as an input device andan output device. For example, the presence-sensitive display of UID 4may include a touchscreen (e.g., a presence-sensitive input device)configured to receive tactile user input from a user of computing device2. The presence-sensitive display of UID 4 may also include a lightemitting diode (LED) display (e.g., a display device) capable ofoutputting visible information to the user of computing device 2. UID 4may present a user interface on the presence-sensitive display, such aspredictive GUI 14 of FIG. 1 , which may be related to functionalityprovided by computing device 2. For example, the presence-sensitivedisplay of UID 4 may present various functions and applications, such asan electronic message client, a map application, an Internet browser foraccessing and downloading information from the Internet, and a socialmedia application. In another example, the presence-sensitive display ofUID 4 may present a menu of options related to the function andoperation of computing device 2, such as screen brightness and otherconfigurable mobile phone settings.

In some examples, the presence-sensitive display may detect an object atand/or near the screen of the presence-sensitive display. As onenon-limiting example range, a presence-sensitive display may detect anobject, such as a finger or stylus, which is within 2 inches or less ofthe physical screen of the presence-sensitive display. Thepresence-sensitive display may determine a location (e.g., an (x,y)coordinate) of the presence-sensitive display at or near which theobject was detected. In another non-limiting example range, apresence-sensitive display may detect an object 6 inches or less fromthe physical screen of the presence-sensitive display, and otherexemplary ranges are also possible. The presence-sensitive display maydetermine the location selected by the object (e.g., user's finger)using capacitive, inductive, and/or optical recognition techniques. Insome examples, the presence-sensitive display provides output usingtactile, audio, or video stimuli as described with respect to outputdevice 46.

One or more storage devices 48 within computing device 2 may storeinformation required for use during operation of computing device 2.Storage devices 48, in some examples, have the primary purpose of beingshort term and not long-term computer-readable storage mediums. Storagedevices 48 on computing device 2 may be configured for short-termstorage of information as volatile memory and therefore not retainstored contents if powered off. Examples of volatile memories includerandom access memories (RAM), dynamic random access memories (DRAM),static random access memories (SRAM), and other forms of volatilememories known in the art. Storage devices 48 may further be configuredfor long-term storage of information as non-volatile memory space andretain information after power on/off cycles. Examples of non-volatilememories include magnetic hard discs, optical discs, floppy discs, flashmemories, or forms of electrically programmable memories (EPROM) orelectrically erasable and programmable (EEPROM) memories. Storagedevices 48 may store program instructions and/or data associated with UImodule 6, search module 8, device location module 10, predictive module12, and operating system 52.

One or more processors 40 may implement functionality and/or executeinstructions within computing device 2. For example, processors 40 oncomputing device 2 may read and execute instructions stored by storagedevices 48 that execute the functionality of UI module 6, search module8, device location module 10, and predictive module 12. Theseinstructions executed by processors 40 may cause computing device 2 tostore information within storage devices 48 during program execution,such as notifications, notification objects, and/or informationassociated search module 8, device location module 10, and predictivemodule 12. Processors 40 may execute instructions of modules 6, 8, 10and 12 to determine a geographic location of computing device 2,generate a predictive user interface (e.g., GUI 14), performing visualsearches, etc. That is, modules 6, 8, 10 and 12 may be operable byprocessors 40 to perform various actions, including generating andoutputting predictive user interfaces. In other examples, one or moreprocessors 40 may execute instructions of any of modules 6, 8, 10 and 12to request a networked server to perform (or at least partially perform)any of the functions attributed to modules 6, 8, 10 and 12 herein.

As described in FIG. 1 , predictive module 12 may be configured todetermine one or more search types associated with the geographiclocation of computing device 2. For example, predictive module 12 maycompare the geographic location of computing device 2 to a set ofgeographic location. The geographic locations of the set of geographiclocations may be associated with one or more search types. Therefore,predictive module 12 may determine, based on the comparison of thegeographic location to the stored set of locations, the one or moresearch types associated with the geographic location at which computingdevice 2 is located. The set of geographic locations may be stored instorage devices 48 and/or predictive module 12 may obtain the set ofgeographic locations from a networked server or repository.

In some examples, predictive module 12 may determine one or more searchtypes based on the geographic location of computing device 2 and one ormore additional criteria. For example, predictive module 12 may obtainthe type of computing device 2 from storage devices 48. The type ofcomputing device may indicate available sensors, processors, memory, orany other capabilities. Predictive module 12 may then determine thesearch type that corresponds to both the geographic location ofcomputing device 2 and the type of computing device.

In some examples, predictive module 12 may function to determine thesearch type associated with the geographic location at which computingdevice 2 is located. In other examples, a networked server or anothernetworked device may determine one or more search types associated withthe determined geographic location of computing device 2. For example,predictive module 12 may transmit the determined geographic location toa networked server (e.g., networked server 162 of FIG. 4 ) viacommunication unit 44. After the networked server determines the searchtype, communication unit 44 may receive the determined search typeassociated with the geographic location of computing device 2.Predictive module 12 may then output, for display by an output device46, an indication of the determined search type.

Although the components of computing device 2 are illustrated in theexample of FIG. 2 as within a common housing, one or more components mayinstead be wired or wirelessly tethered to computing device 2. Forexample, output device 26 (e.g., a display device) may be physicallyseparate from computing device 2. In other examples, an optical sensormay not reside within a housing of computing device 2.

FIG. 3 is a block diagram illustrating an example computing device thatoutputs graphical content for display at a remote device, in accordancewith one or more techniques of the present disclosure. Graphicalcontent, generally, may include any visual information that may beoutput for display, such as text, images, a group of moving images, etc.The example shown in FIG. 3 includes a computing device 100 (e.g., anexample of computing device 2 of FIGS. 1 and 2 ), presence-sensitivedisplay 101, communication unit 110, projector 120, projector screen122, tablet device 126, and visual display device 130. Although shownfor purposes of example in FIGS. 1 and 2 as a stand-alone computingdevice 2, a computing device may, generally, be any component or systemthat includes a processor or other suitable computing environment forexecuting software instructions and, for example, need not include apresence-sensitive display.

As shown in the example of FIG. 3 , computing device 100 may be aprocessor that includes functionality as described with respect toprocessor 40 in FIG. 2 . In such examples, computing device 100 may beoperatively coupled to presence-sensitive display 101 by a communicationchannel 102A, which may be a system bus or other suitable connection.Computing device 100 may also be operatively coupled to communicationunit 110, further described below, by a communication channel 102B,which may also be a system bus or other suitable connection. Althoughshown separately as an example in FIG. 3 , computing device 100 may beoperatively coupled to presence-sensitive display 101 and communicationunit 110 by any number of one or more communication channels.

In other examples, such as illustrated previously in FIGS. 1-2 ,computing device 100 may be a portable or mobile device such as mobilephones (including smart phones), laptop computers, etc. In someexamples, computing device 100 may be a desktop computers, tabletcomputers, smart television platforms, cameras, personal digitalassistants (PDAs), servers, mainframes, etc.

Presence-sensitive display 101, as shown in FIG. 3 , may include displaydevice 103 and presence-sensitive input device 105. Display device 103may, for example, receive data from computing device 100 and display thegraphical content. In some examples, presence-sensitive input device 105may determine one or more user inputs (e.g., continuous gestures,multi-touch gestures, single-touch gestures, etc.) at presence-sensitivedisplay 101 using capacitive, inductive, and/or optical recognitiontechniques and send indications of such user input to computing device100 using communication channel 102A. In some examples,presence-sensitive input device 105 may be physically positioned on topof display device 103 such that, when a user positions an input unitover a graphical element displayed by display device 103, the locationat which presence-sensitive input device 105 corresponds to the locationof display device 103 at which the graphical element is displayed.

As shown in FIG. 3 , computing device 100 may also include and/or beoperatively coupled with communication unit 110. Communication unit 110may include functionality of communication unit 44 as described in FIG.2 . Examples of communication unit 110 may include a network interfacecard, an Ethernet card, an optical transceiver, a radio frequencytransceiver, or any other type of device that can send and receiveinformation. Other examples of such communication units may includeBluetooth, 3G, and WiFi radios, Universal Serial Bus (USB) interfaces,etc. Computing device 100 may also include and/or be operatively coupledwith one or more other devices, e.g., input devices, output devices,memory, storage devices, etc. that are not shown in FIG. 3 for purposesof brevity and illustration.

FIG. 3 also illustrates a projector 120 and projector screen 122. Othersuch examples of projection devices may include electronic whiteboards,holographic display devices, and any other suitable devices fordisplaying graphical content. Projector 120 and project screen 122 mayinclude one or more communication units that enable the respectivedevices to communicate with computing device 100. In some examples, theone or more communication units may enable communication betweenprojector 120 and projector screen 122. Projector 120 may receive datafrom computing device 100 that includes graphical content. Projector120, in response to receiving the data, may project the graphicalcontent onto projector screen 122. In some examples, projector 120 maydetermine one or more user inputs (e.g., continuous gestures,multi-touch gestures, single-touch gestures, etc.) at projector screenusing optical recognition or other suitable techniques and sendindications of such user input using one or more communication units tocomputing device 100.

Projector screen 122, in some examples, may include a presence-sensitivedisplay 124. Presence-sensitive display 124 may include a subset offunctionality or all of the functionality of UI device 4 as described inthis disclosure. In some examples, presence-sensitive display 124 mayinclude additional functionality. Projector screen 122 (e.g., anelectronic whiteboard), may receive data from computing device 100 anddisplay the graphical content. In some examples, presence-sensitivedisplay 124 may determine one or more user inputs (e.g., continuousgestures, multi-touch gestures, single-touch gestures, etc.) atprojector screen 122 using capacitive, inductive, and/or opticalrecognition techniques and send indications of such user input using oneor more communication units to computing device 100.

FIG. 3 also illustrates tablet device 126 and visual display device 130.Tablet device 126 and visual display device 130 may each includecomputing and connectivity capabilities. Examples of tablet device 126may include e-reader devices, convertible notebook devices, hybrid slatedevices, etc. Examples of visual display device 130 may includetelevisions, computer monitors, etc. As shown in FIG. 3 , tablet device126 may include a presence-sensitive display 128. Visual display device130 may include a presence-sensitive display 132. Presence-sensitivedisplays 128, 132 may include a subset of functionality or all of thefunctionality of UI device 4 as described in this disclosure. In someexamples, presence-sensitive displays 128, 132 may include additionalfunctionality. In any case, presence-sensitive display 132, for example,may receive data from computing device 100 and display the graphicalcontent. In some examples, presence-sensitive display 132 may determineone or more user inputs (e.g., continuous gestures, multi-touchgestures, single-touch gestures, etc.) at projector screen usingcapacitive, inductive, and/or optical recognition techniques and sendindications of such user input using one or more communication units tocomputing device 100.

As described above, in some examples, computing device 100 may outputgraphical content for display at presence-sensitive display 101 that iscoupled to computing device 100 by a system bus or other suitablecommunication channel. Computing device 100 may also output graphicalcontent for display at one or more remote devices, such as projector120, projector screen 122, tablet device 126, and visual display device130. For instance, computing device 100 may execute one or moreinstructions to generate and/or modify graphical content in accordancewith techniques of the present disclosure. Computing device 100 mayoutput the data that includes the graphical content to a communicationunit of computing device 100, such as communication unit 110.Communication unit 110 may send the data to one or more of the remotedevices, such as projector 120, projector screen 122, tablet device 126,and/or visual display device 130. In this way, computing device 100 mayoutput the graphical content for display at one or more of the remotedevices. In some examples, one or more of the remote devices may outputthe graphical content at a presence-sensitive display that is includedin and/or operatively coupled to the respective remote devices.

In some examples, computing device 100 may not output graphical contentat presence-sensitive display 101 that is operatively coupled tocomputing device 100. In other examples, computing device 100 may outputgraphical content for display at both a presence-sensitive display 101that is coupled to computing device 100 by communication channel 102A,and at one or more remote devices. In such examples, the graphicalcontent may be displayed substantially contemporaneously at eachrespective device. For instance, some delay may be introduced by thecommunication latency to send the data that includes the graphicalcontent to the remote device. In some examples, graphical contentgenerated by computing device 100 and output for display atpresence-sensitive display 101 may be different than graphical contentdisplay output for display at one or more remote devices.

Computing device 100 may send and receive data using any suitablecommunication techniques. For example, computing device 100 may beoperatively coupled to external network 114 using network link 112A.Each of the remote devices illustrated in FIG. 3 may be operativelycoupled to network external network 114 by one of respective networklinks 112B, 112C, and 112D. External network 114 may include networkhubs, network switches, network routers, etc., that are operativelyinter-coupled thereby providing for the exchange of information betweencomputing device 100 and the remote devices illustrated in FIG. 3 . Insome examples, network links 112A-112D may be Ethernet, ATM or othernetwork connections. Such connections may be wireless and/or wiredconnections.

In some examples, computing device 100 may be operatively coupled to oneor more of the remote devices included in FIG. 3 using direct devicecommunication 118. Direct device communication 118 may includecommunications through which computing device 100 sends and receivesdata directly with a remote device, using wired or wirelesscommunication. That is, in some examples of direct device communication118, data sent by computing device 100 may not be forwarded by one ormore additional devices before being received at the remote device, andvice-versa. Examples of direct device communication 118 may includeBluetooth, Near-Field Communication, Universal Serial Bus, WiFi,infrared, etc. One or more of the remote devices illustrated in FIG. 3may be operatively coupled with computing device 100 by communicationlinks 116A-116D. In some examples, communication links 112A-112D may beconnections using Bluetooth, Near-Field Communication, Universal SerialBus, infrared, etc. Such connections may be wireless and/or wiredconnections.

In accordance with techniques of the disclosure, computing device 100may be operatively coupled to visual display device 130 using externalnetwork 114. In response to determining a geographic location ofcomputing device 100, computing device 100 or a networked device maydetermine one or more search types associated with the geographiclocation. Computing device 100 may then output the determined searchtype(s) for display at presence-sensitive display 132 or any otherdisplay of FIG. 3 . In addition, in response to receiving search resultsfor the selected search type, computing device 100 may output the searchresults for display at presence-sensitive display 132 or any otherdisplay of FIG. 3 . In this manner, any of the graphical user interfacesor objects output by computing device 100 may be displayed by any typeof display described herein.

FIG. 4 is a conceptual diagram illustrating an example system 150including computing device 152 and networked server 162 configured topredictively present selective search capabilities to a user viacomputing device 152. Although computing device 152 may determine one ormore search types associated with the geographical location of computingdevice 152 (as described herein with respect to computing device 2 ofFIGS. 1 and 2 ), networked server 162 (e.g., a networked device) maydetermine search types associated with the geographic location ofcomputing device 152 or assist computing device 152 in at least aportion of the determination. Computing device 152 may present thedetermined search types to the user via display device 154, for example,once networked server 162 performs the search type determination.

As shown in FIG. 4 , system 150 includes computing device 152, network160, networked server 162, and repository 164. Computing device 152, insome examples, is or is a part of a portable computing device (e.g., amobile phone, a smartphone, a netbook, a notebook, a tablet device, or asmart watch). In other examples, computing device 152 may be at least apart of a digital camera, a music player, or any other device that auser may carry or move between different locations. In some examples,computing device 152 may be similar to computing device 2 of FIGS. 1 and2 . Computing device 152 may also connect to network 160 (e.g., a wiredor wireless network). Although network 160 may be a single network,network 160 may be representative of two or more networks that allowcomputing device 152 to communicate with networked server 162.

Computing device 152 may include display device 154, rear camera 158,microphone 156, and speaker 157. Display device 154 may include one ormore input devices and/or output devices so that the user cancommunicate with computing device 12. In one example, display device 154may include a touch screen interface (e.g., a presence-sensitive displaythat includes a presence-sensitive input device). In other examples,display device 154 may include a display and one or more buttons, pads,joysticks, mice, tactile device, or any other device capable of turninguser actions into electrical signals that control computing device 152.In any example, the user may interact with display device 154 or anyother input devices to provide input prior to or during the processesdescribed herein.

Rear camera 158 may enable computing device 152 to capture images (e.g.,still images and/or video) of the environment surrounding computingdevice 152 such as people, landscapes, and objects. Rear camera 158 mayinclude one or more optical sensors capable of generatinghigh-resolution images. For example, the optical sensor may include morethan one million pixels (a one megapixel sensor), more than five millionpixels (a five megapixel sensor), or even more than ten million pixels(a ten megapixel sensor). In some examples, computing device 152 mayinclude two or more cameras disposed on any surface of computing device152 or coupled to computing device 152 using a cable. Alternatively,rear camera 158 may be placed on the front or other surface of computingdevice 152.

Microphone 154 may be configured to capture sound around computingdevice 152, such as user speech, speech from other people, andenvironmental sounds. Speaker 157 may be configured to generate anddeliver audio to the user such as contact speech or other sounds. Insome examples, computing device 152 may include more than one microphone156 and speaker 157. Although microphone 156 and speaker 157 may belocated on or within a housing of computing device 152, microphone 156and/or speaker 157 may be electrically coupled to computing device 152via one or more cables. Microphone 156 is an example of an audio inputand speaker 157 is an example of an audio output. In other examples,computing device 152 may include additional, or alternative, audioinputs and audio outputs that include a sensor or direct electricalconnection configured to accept audio from an attached device or deliveraudio to an attached device.

Computing device 152 and networked server 162 may cooperatively functionto provide predictive search types to a user based on the geographicallocation of computing device 152. Computing device 152 may determine thegeographical location at which the computing device is located.Computing device 152 may include a device location module, for example,that obtains data from GPS satellites, cellular network access points,or local area network access points, or any other device from which dataregarding the position of computing device 152 can be obtained. Usingthis data, computing device 152 may determine the current geographiclocation of computing device 152. Computing device 152 may also updatethe geographic location as appropriate. In some examples, computingdevice 152 may transmit data relating to the location of computingdevice 152 to networked server 162, networked server 162 may determinethe geographic location of computing device 152, and networked server162 may transmit the determined geographic location back to computingdevice 152.

Computing device 152 may transmit geographic location information 166 tonetworked server 162 via network 160 in order to obtain one or moresearch types associated with the determined geographic location.Geographic location information 166 may include the determinedgeographic location or an indication of the geographic location. Inresponse to receiving geographic location information 166, networkedserver 162 may determine one or more search types associated with thegeographic location of computing device 152. For example, networkedserver 162 may search one or more repositories, such as repository 164,for one or more databases that associate search types with respectivegeographic locations. Networked server 162 may compare the geographiclocation of computing device 152 to one or more sets of locations storedin repository 164, and select the search types that are associated witha location that compares to the geographic location of computing device152. For example, networked server 162 may select search types from theset of locations for each location within a threshold geographicdistance from the geographic location of computing device 152. Networkedserver 162 may include a predictive module, similar to the predictivemodule of computing device 2 in FIG. 1 , to determine the search types.

Once networked server 162 has determined the appropriate one or moresearch types for the received geographic location of computing device152, networked server 162 may transmit search type information 168 tocomputing device 152 via network 160. Search type information 168 mayinclude the determined search types or indications of the search types.In some examples, search type information 168 may include an indicationof the geographic location for which the search types were selected. Ifnetworked server 162 determines that no search types were associatedwith the geographic location of computing device 152, search typeinformation 168 may include a message indicating that the geographiclocation was not associated with any particular search types.

Computing device 152 may present the search types received fromnetworked server 162. Responsive to receiving a user input selecting anindication of one of the determined search types, computing device 152may obtain one or more search terms for the search type (e.g., an imagefor a visual search type). Computing device 152 may transmit the searchterms as a search request to networked server 162 via network 160 inorder to obtain one or more search results relevant to the search terms.Networked server 162 may search one or more repositories (e.g.,repository 164), computing devices, or any other resources to determinethe search results. Networked server 162 may then respond to the searchrequest by transmitting the search results to computing device 152 vianetwork 160 for display at display device, for example. In someexamples, computing device 152 may additionally, or alternatively,generate search results in response to the search request. In thismanner, the search results may include results obtained from computingdevice 152 and/or repositories or other devices accessible via network160.

Transmission of geographic location information 166, or any other datafrom computing device 152, may require a connection between computingdevice 152 and networked server 162 using network 160. Both computingdevice 152 and networked server 162 may connect to network 160. Network160 may be embodied as one or more of the Internet, a wireless network,a wired network, a cellular network, or a fiber optic network. In otherwords, network 160 may be any data communication protocol or protocolsthat facilitate data transfer between two or more devices. Networkedserver 162 may also connect to repository 164 for storing sets oflocations and associated search types, searchable information, or anyother data related to the functions described herein. Networked server162 and repository 164 may each include one or more servers ordatabases, respectively. In this manner, networked server 162 andrepository 164 may be embodied as any hardware necessary to determineone or more search types based on a geographic location at whichcomputing device 152 is located. Networked server 162 may include one ormore servers, desktop computers, mainframes, minicomputers, or othercomputing devices capable of executing computer instructions and storingdata. In some examples, functions attributable to networked server 162herein may be attributed to respective different servers for respectivefunctions. Repository 164 may include one or more memories,repositories, hard disks, or any other data storage device. In someexamples, repository 164 may be included within networked server 162.

Repository 164 may be included in, or described as, cloud storage. Inother words, a set of locations associated with respective search typesmay be stored in one or more locations in the cloud (e.g., one or morerepositories 164). Networked server 162 may access the cloud andretrieve the appropriate search types corresponding to the geographiclocation of computing device 152. In some examples, repository 164 mayinclude Relational Database Management System (RDBMS) software. In oneexample, repository 164 may be a relational database and accessed usinga Structured Query Language (SQL) interface that is well known in theart. Repository 164 may alternatively be stored on a separate networkedcomputing device and accessed by networked server 162 through a networkinterface or system bus. Repository 164 may in other examples be anObject Database Management System (ODBMS), Online Analytical Processing(OLAP) database or other suitable data management system.

FIG. 5 is a flow diagram illustrating an example operation of an examplecomputing device, in accordance with one or more aspects of the presentdisclosure. A computing device, such as computing device 2 illustratedin FIGS. 1 and 2 and computing device 100 illustrated in FIG. 3 , mayperform the process of FIG. 5 . In some instances, one or moreprocessors of a computing device, such as processors 40 of computingdevice 2 of FIGS. 1 and 2 , may also perform the process of FIG. 5 . Forpurposes of illustration, FIG. 5 is described below within the contextof computing device 2 of FIGS. 1 and 2 .

Computing device 2, and more specifically, device location module 10, isconfigured to determine a geographic location at which computing device2 is located (170). This geographic location may be referred to asassociated with computing device 2 or a geographic location of computingdevice 2. Device location module 10 may determine the geographiclocation based on a GPS signal, cellular radio signals (e.g., forcellular tower triangulation), Wi-Fi signals, or other signals ortechniques known in the art. Predictive module 12 may then obtain one ormore search types associated with the geographic location of computingdevice 2 (172). Obtaining the search types may include determining thesearch types or receiving the search types from a networked device thatdetermined the search types.

In one example, predictive module 12 of computing device 2 may comparethe geographic location of computing device 2 to a set (e.g., awhitelist) of locations to determine if computing device 2 is proximateto one of the whitelisted locations of the set. Each of the whitelistedlocations may be associated with one or more search types applicable orappropriate for that particular location. As one example, predictivemodule 12 may determine that the geographic location compares to alocation associated with a bookstore. Bookstores frequently includegoods having bar codes. Thus, predictive module 12 may be configured todetermine that bar code scanner functionality of a visual search isrelated to the geographic location of computing device 2. Responsive todetermining that computing device 2 is proximate to a whitelistedlocation, predictive module 12 may be configured to determine that oneor more search type is associated with the geographic location. In otherexamples, computing device 2 may obtain the search types by transmittingthe geographic location of computing device 2 to a networked server viaa network and receiving the one or more search types determined by thenetworked server.

Responsive to obtaining the one or more search types associated with thegeographic location of computing device 2, predictive module 12 maygenerate predictive user interface elements that may include informationincluding an indication of the one or more search types associated withthe geographic location (174). In one example of a visual search type,the predictive user interface may include an indication about thegeographic location and/or an indication of the visual searchcapabilities determined to be particularly relevant to the geographiclocation. Predictive module 12 may provide at least an indication of thegenerated predictive user interface elements to UI module 6, whichcauses UID 4 to output predictive GUI 14, which includes visual searchindication 18 within predictive card 16. However, the search types maybe outputted for presentation in various different formats. In someexamples, UID 4 outputs predictive user interface 14 in response to userinput.

As described herein, the determined search types may include a varietyof different search types. For example, search types may include avisual search type, an audio search, type, a textual search type, or anyother search type related to the type of input receivable by computingdevice 2. In addition, each search type may include a subtype orcapability specific to a search that may be performed for moreinformation. For example, a visual search type may correspond to one ormore of a barcode scanning capability, a quick response code scanningcapability, an image recognizer capability, and an optical characterrecognition capability.

FIG. 6 is a flow diagram illustrating another example operation of acomputing device. A computing device, such as computing device 2illustrated in FIGS. 1 and 2 and computing device 100 illustrated inFIG. 3 , may perform the process of FIG. 6 . In some instances one ormore processors of a computing device, such as processors 40 ofcomputing device 2 illustrated in FIGS. 1 and 2 , may also perform theprocess of FIG. 6 . For purposes of illustration, FIG. 6 is describedbelow within the context of computing device 2 of FIGS. 1 and 2 .Although the example of FIG. 6 is directed to performing a search of avisual search type, searches for any search type may be performed in asimilar manner.

Computing device 2, and more specifically, device location module 10, isconfigured to determine a geographic location at which computing device2 is located (180). Device location module 10 may determine thegeographic location based on a GPS signal, cellular radio signals (e.g.,for cellular tower triangulation), Wi-Fi signals, or other signals ortechniques known in the art. Predictive module 12 may then transmit, viacommunication unit 44, the determined geographic location to a networkeddevice (e.g., a networked server) via a network (182). The networkeddevice may then determine one or more search types associated with thetransmitted geographic location.

Communication unit 44 may then receive the one or more determined searchtypes from the networked device via the network (184). Communicationunit 44 may transfer the search types, or indications of the searchtypes, to predictive module 12. Predictive module 12 may then output,for display, a predictive GUI that includes indications of the one ormore search types (186). The GUI may include a predictive card, asillustrated in the example of FIG. 1 . As long as computing device 2does not receive user input selecting any of the displayed search types(“NO” branch of block 188), predictive module 12 may continue to outputthe predictive GUI including the indications of the search types (186).

In response to receiving a user input selecting one of the displayedsearch types, such as a visual search type (“YES” branch of block 188),computing device 2 may obtain one or more images with an optical sensorsuch as a camera (190). In response to obtaining the one or more images,search module 8 may be configured to transmit a search request and theone or more obtained images to the networked device via the network(192). The transmitted images may be used as the search terms for thesearch request. In some examples, search module 8, or another componentof computing device 2, may transmit the images to a different networkeddevice than the networked device that determined the search typesassociated with the geographic location of computing device 2.Subsequent to the networked device obtaining search results in responseto the search request, computing device 2 may receive the search resultscorresponding to one or more recognized objects of the transmittedimages (194). If the visual search type was limited to a more specificvisual search capability, such as a bar code capability, the searchresults may be limited to bar code results corresponding to anyrecognized bar code objects in the images, for example.

Computing device 2 may repeat the technique, or portions of thetechnique, described in FIG. 6 for additional search types or forupdated geographic locations of computing device 2. In other words,device location module 10 and/or predictive module 12 may initiatesubsequent search type determinations in response to identifying achange to the geographic location of computing device 2. Alternatively,search types may be continually determined based on the most recentgeographic location of computing device 2, and predictive module 12 mayupdate the output of search types in response to identifying that thesearch types have changed.

FIGS. 7 and 8 are flow diagrams illustrating example operations of anetworked server (a networked device) in communication with thecomputing device. The operations of FIGS. 7 and 8 may correspond toinformation transmitted from a computing device, such as computingdevice 2 of FIG. 6 . The process of FIGS. 7 and 8 may be performed byone or more networked servers, such as networked server 162 illustratedin FIG. 4 . For purposes of illustration, FIGS. 7 and 8 are describedbelow within the context of networked server 162 and system 150 of FIG.4 . Computing device 152 will also be described, but computing device 2or any other computing device described herein may similarly communicatewith networked server 162.

As shown in FIG. 7 , networked server 162 may receive a determinedgeographical location (e.g., geographic location information) fromcomputing device 152 (200). The geographic location may be indicative ofthe location at which computing device 152 was located when thegeographic location was determined. In response to receiving thegeographic location, networked server 162 determines one or more searchtypes associated with the received geographic location of computingdevice 152 (202). For example, networked server 162 may compare thegeographic location to a set of locations (e.g., whitelisted locations)stored by repository 164. Networked server may select the one or moresearch types associated with the corresponding location of the set oflocations.

In response to determining the one or more search types associated withthe geographic location, networked server 162 may transmit thedetermined search types (e.g., search type information) to computingdevice 152 via network 160 (204). If networked server 162 cannotdetermine any search types associated with the geographic location,networked server 162 may transmit an indication of a null set of searchtypes to computing device 152. Networked server 162 may repeat thetechnique of FIG. 7 for any received geographic location.

FIG. 8 may be specific to generating search results for a visual searchtype. As shown in FIG. 8 , networked server 162 may be configured toreceive a visual search request and one or more images from computingdevice 152 (206). Networked server 162 may then perform objectrecognition on the one or more received images to identify one or moreobjects (208). The recognized objects may be objects for which searchresults may be generated. In some examples, networked server 162 mayanalyze the one or more images for any objects that correspond to a setof recognized objects stored in repository 164. Networked server 162 mayutilize any one or more object recognition algorithms to perform theobject recognition process.

In response to recognizing an object within one of the images (“YES”branch of block 210), networked server 162 may generate search resultsbased on the recognized object (212). In this manner, the recognizedobject may be used as one or more search terms. In response togenerating the search results, networked server 162 transmits the searchresults to computing device 162 via network 160. In response todetermining that no object is recognized within one of the images (“NO”branch of block 210), networked server 162 may generate a messageindicating that no objects were recognized from the received images(214). In response to generating the message, networked server 162transmits the message as a search result to computing device 162 vianetwork 160. Networked server 162 may repeat the techniques of FIG. 8for each visual search request received from computing device 152.

In one or more examples, the functions described herein may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the functions may be stored on ortransmitted over, as one or more instructions or code, acomputer-readable medium and executed by a hardware-based processingunit. Computer-readable media may include computer-readable storagemedia, which corresponds to a tangible medium such as data storagemedia, or communication media including any medium that facilitatestransfer of a computer program from one place to another, e.g.,according to a communication protocol. In this manner, computer-readablemedia generally may correspond to (1) tangible computer-readable storagemedia, which is non-transitory or (2) a communication medium such as asignal or carrier wave. Data storage media may be any available mediathat can be accessed by one or more computers or one or more processorsto retrieve instructions, code and/or data structures for implementationof the techniques described in this disclosure. A computer programproduct may include a computer-readable medium.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if instructions are transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. It should be understood, however, thatcomputer-readable storage media and data storage media do not includeconnections, carrier waves, signals, or other transient media, but areinstead directed to non-transient, tangible storage media orcomputer-readable storage devices. Disk and disc, as used herein,includes compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk and Blu-ray disc, where disks usually reproducedata magnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope ofcomputer-readable storage media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules. Also, the techniques couldbe fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A computer-implemented method comprising: beforea user has initiated an image-based search at a computing device:obtaining data indicating a current context including at least ageographic location associated with the computing device, determiningthat the computing device is physically located proximate to apredefined, geographic location based on the data indicating a currentcontext, in response to determining that the computing device isphysically located proximate to the predefined, geographic location:accessing a repository that associates, for each predefined geographiclocation of a plurality of predefined geographic locations, a respectiveimage-based search type for the predefined geographic location, andwherein the respective image-based search types define multiplecandidate image-based search types that each respectively invoke asearch type capability of an image search system that is different froma search type capability invoked by each other candidate image-basedsearch type; determining, based on the repository and the geographiclocation, a particular image-based search type from the multiplecandidate image-based search types, wherein the particular image-basedsearch type is associated with the predefined, geographic location inthe repository, and providing a user interface including a control forinitiating an image-based search of the particular image-based searchtype, wherein the user interface comprises a predictive card, whereinthe predictive card comprises information generated by a predictivemodel.
 2. The computer-implemented method of claim 1, wherein therespective image-based search types comprise at least one of barcodescanning search, a quick response code scanning search, an imagerecognition search, or an optical character recognition search.
 3. Thecomputer-implemented method of claim 1, wherein the computing devicecomprises at least one of a mobile phone, a smartphone, a tabletcomputer, a smartwatch, or a notebook computer.
 4. Thecomputer-implemented method of claim 1, wherein the data indicating thecurrent context is generated with one or more sensors.
 5. Thecomputer-implemented method of claim 1, wherein obtaining dataindicating the current context comprises receiving data indicating thecurrent context from the computing device via a network.
 6. Thecomputer-implemented method of claim 1, wherein the user interface isprovided via at least one of a resistive touchscreen, a surface acousticwave touchscreen, a capacitive touchscreen, a projective capacitancetouchscreen, a pressure sensitive screen, or an acoustic pulserecognition touchscreen.
 7. A computing system, the computing systemcomprising: one or more processors; and one or more non-transitorycomputer-readable media that collectively store instructions that, whenexecuted by the one or more processors, cause the computing system toperform operations, the operations comprising: storing a plurality ofwhitelisted locations, and associating one or more search types witheach whitelisted location, wherein the one or more search types comprisea visual search type corresponding to at least one of a barcode scanningcapability, a quick response code scanning capability, an imagerecognizer capability, and an optical character recognition capability,wherein a first whitelisted location is associated with a first searchtype associated with a first specific search capability, wherein asecond whitelisted location is associated with a second search typeassociated with a second specific search capability, and wherein thefirst specific search capability differs from the second searchcapability; before a user has initiated an image-based search at acomputing device: obtaining a geographic location of the computingdevice; determining that the geographic location of the computing deviceis associated with a particular whitelisted location of the plurality ofwhitelisted locations; obtaining the one or more search types associatedwith the particular whitelisted location; responsive to obtaining theone or more search types, providing a graphical user interfacecomprising at least an indication of the one or more search typesassociated with the particular whitelisted location, wherein thegraphical user interface comprises a predictive card, wherein thepredictive card comprises information generated by a predictive model.8. The computing system of claim 7, wherein obtaining the one or moresearch types associated with the particular whitelisted locationcomprises determining the one or more search types associated with theparticular whitelisted location.
 9. The computing system of claim 8,wherein determining the one or more search types associated with theparticular whitelisted location comprises: comparing the geographiclocation to the plurality of whitelisted locations; and determining,based at least in part on the geographic location and the plurality ofwhitelisted locations, the one or more search types associated with theparticular whitelisted location.
 10. The computing system of claim 8,wherein determining the one or more search types associated with theparticular whitelisted location comprises: determining that thegeographic location of the computing device is within a thresholddistance from a whitelisted location associated with the one or moresearch types.
 11. The computing system of claim 8, wherein determiningthe one or more search types comprises determining, based on thegeographic location and a type of the computing device, the one or moresearch types.
 12. The computing system of claim 8, wherein determiningthe one or more search types comprises determining, based on thegeographic location, a current time during which the geographic locationwas determined, and a scheduled event associated with the computingdevice, the one or more search types.
 13. The computing system of claim7, wherein obtaining the one or more search types associated with thegeographic location comprises: transmitting, by the computing device andvia a network, the geographic location to a networked device; andreceiving, from the networked device, the one or more search typesassociated with the geographic location.
 14. The computing system ofclaim 7, wherein obtaining a search input for one of the one or moresearch types indicated on the graphical user interface, comprises:receiving user input selecting one of the one or more search typesassociated with the geographic location, wherein the selected searchtype comprises a visual search type; and obtaining, by at least oneoptical sensor, one or more images, and wherein obtaining and outputtingfor display one or more search results associated with the search inputcomprises: transmitting, via a network, the one or more images to anetworked device; receiving, from the networked device and based on atleast one of the one or more images, at least one search result, andoutputting for display, the graphical user interface comprising anindication of the at least one search result.
 15. The computing systemof claim 7, wherein the computing device comprises at least one of asmartphone, a tablet computer, and a smartwatch.
 16. The computingsystem of claim 7, wherein the predictive card comprises informationassociated with the particular whitelisted location.
 17. The computingsystem of claim 16, wherein the predictive card comprises at least oneof an icon or a picture associated with the particular whitelistedlocation.
 18. The computing system of claim 7, wherein the operationsfurther comprise: receiving a selection of a particular search type fromthe computing device; obtaining a search input from the computingdevice; and providing for display one or more search results based atleast in part on the particular search type and the search input. 19.One or more non-transitory computer-readable media that collectivelystore instructions that, when executed by one or more computing devices,cause the one or more computing devices to perform operations, theoperations comprising: before a user has initiated an image-based searchat a computing device: obtaining data indicating a current contextincluding at least a geographic location associated with the computingdevice, determining that the computing device is physically locatedproximate to a predefined, geographic location based on the dataindicating a current context, in response to determining that thecomputing device is physically located proximate to the predefined,geographic location: accessing a repository that associates, for eachpredefined geographic location of a plurality of predefined geographiclocations, a respective image-based search type for the predefinedgeographic location, and wherein the respective image-based search typesdefine multiple candidate image-based search types that eachrespectively invoke a search type capability of an image search systemthat is different from a search type capability invoked by each othercandidate image-based search type; determining, based on the repositoryand the geographic location, a particular image-based search type fromthe multiple candidate image-based search types, wherein the particularimage-based search type is associated with the predefined, geographiclocation in the repository, and providing a user interface including acontrol for initiating an image-based search of the particularimage-based search type, wherein the user interface comprises apredictive card, wherein the predictive card comprises informationgenerated by a predictive model.